from dataclasses import dataclass
from typing import List, Optional

from common.enum.stock_category_enum import StockCategoryEnum
from common.enum.strategy_group_enum import StrategyGroup
from common.enum.strategy_type_enum import StrategyType


@dataclass
class StrategyBindingDTO:
    id: Optional[int] = None  # 数据库主键（可选，用于更新或查询返回）

    stock_category: Optional[StockCategoryEnum] = None  # 股票分类

    stock_code: Optional[str] = None  # 股票代码

    strategies: Optional[List[str]] = None  # 策略列表

    # 扩展字段
    strategy_code: Optional[str] = None  # 策略代码

    strategy_name: Optional[str] = None  # 策略可读名称

    strategy_group: Optional[StrategyGroup] = None  # 策略分组

    strategy_type: Optional[StrategyType] = None  # 策略类型

    analysis_day: Optional[int] = None  # 策略分析的天数

    strategy_level: Optional[int] = None  # 策略等级

    check_flag: Optional[bool] = False # 是否勾选标识
